//package com.example.websocket.excel.util;
//
//import com.jdy169.common.model.ApiProviderModel;
//import org.xml.sax.Attributes;
//import org.xml.sax.SAXException;
//import org.xml.sax.helpers.DefaultHandler;
//
//import javax.xml.parsers.SAXParser;
//import javax.xml.parsers.SAXParserFactory;
//import java.io.IOException;
//import java.io.InputStream;
//import java.util.ArrayList;
//import java.util.List;
//
///**
// * 解析服务提供商xml文件数据
// * @author David
// *
// */
//public class SaxParseApiProvider extends DefaultHandler {
//
//	private List<ApiProviderModel> apiProviderModels;
//
//	private ApiProviderModel apiProviderModel;
//
//	private String preTag; // 记录解析上一个节点名称
//
//	private StringBuilder sb;
//
//	private Boolean flag = false;
//
//	public List<ApiProviderModel> getApiProviderModels() {
//		return apiProviderModels;
//	}
//
//	public List<ApiProviderModel> getApiProviderModels(InputStream xmlStream) {
//		SaxParseApiProvider handler = new SaxParseApiProvider();
//		SAXParserFactory factory = SAXParserFactory.newInstance();
//		SAXParser parser = null;
//		try {
//			parser = factory.newSAXParser();
//			parser.parse(xmlStream, handler);
//		} catch (Exception e) {
//			e.printStackTrace();
//		} finally {
//			if (xmlStream != null) {
//				try {
//					xmlStream.close();
//				} catch (IOException e) {
//					e.printStackTrace();
//				}
//			}
//			if (factory != null) {
//				factory = null;
//			}
//			if (parser != null) {
//				parser = null;
//			}
//		}
//		return handler.getApiProviderModels();
//	}
//
//	@Override
//	public void startDocument() throws SAXException {
//		apiProviderModels = new ArrayList<>();
//	}
//
//	@Override
//	public void endDocument() throws SAXException {
//		super.endDocument();
//	}
//
//	@Override
//	public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
//		super.startElement(uri, localName, qName, attributes);
//		flag = true;
//		if ("provider".equals(qName)) {
//			apiProviderModel = new ApiProviderModel();
//		}
//		preTag = qName;
//		sb = new StringBuilder();
//	}
//
//	@Override
//	public void endElement(String uri, String localName, String qName) throws SAXException {
//		super.endElement(uri, localName, qName);
//		flag = false;
//		if ("provider".equals(qName)) {
//			apiProviderModels.add(apiProviderModel);
//		}
//		if (preTag != null) {
//			String content = sb.toString();
//			if ("name".equals(preTag)) {
//				apiProviderModel.setName(content);
//			} else if ("remark".equals(preTag)) {
//				apiProviderModel.setRemark(content);
//			} else if ("logoUrl".equals(preTag)) {
//				apiProviderModel.setLogoUrl(content);
//			} else if ("categoryId".equals(preTag)) {
//				apiProviderModel.setCategoryId(Integer.parseInt(content));
//			} else if ("categoryName".equals(preTag)) {
//				apiProviderModel.setCategoryName(content);
//			} else if ("providerBriefly".equals(preTag)) {
//				apiProviderModel.setProviderBriefly(Integer.parseInt(content));
//			} else if ("routerType".equals(preTag)) {
//				apiProviderModel.setRouterId(Integer.parseInt(content));
//			} else if ("routerId".equals(preTag)) {
//				apiProviderModel.setRouterId(Integer.parseInt(content));
//			} else if ("menuId".equals(preTag)) {
//				apiProviderModel.setMenuId(Integer.parseInt(content));
//			}
//		}
//	}
//
//	@Override
//	public void characters(char[] ch, int start, int length) throws SAXException {
//		super.characters(ch, start, length);
//		// 保存节点内容
//		if (!flag) {
//			return;
//		}
//		sb.append(new String(ch, start, length));
//	}
//
//
//}
